<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.6"/>
<title>SystemSharp: SystemSharp.Assembler.FlowMatrix Class Reference</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<link href="navtree.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="resize.js"></script>
<script type="text/javascript" src="navtree.js"></script>
<script type="text/javascript">
  $(document).ready(initResizable);
  $(window).load(resizeHeight);
</script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/search.js"></script>
<script type="text/javascript">
  $(document).ready(function() { searchBox.OnSelectItem(0); });
</script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
 <tbody>
 <tr style="height: 56px;">
  <td id="projectlogo"><img alt="Logo" src="logo.png"/></td>
  <td style="padding-left: 0.5em;">
   <div id="projectname">SystemSharp
   &#160;<span id="projectnumber">0.3</span>
   </div>
   <div id="projectbrief">A system-level modeling framework for designing real-time embedded systems</div>
  </td>
 </tr>
 </tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.6 -->
<script type="text/javascript">
var searchBox = new SearchBox("searchBox", "search",false,'Search');
</script>
  <div id="navrow1" class="tabs">
    <ul class="tablist">
      <li><a href="index.html"><span>Main&#160;Page</span></a></li>
      <li><a href="namespaces.html"><span>Packages</span></a></li>
      <li class="current"><a href="annotated.html"><span>Classes</span></a></li>
      <li><a href="files.html"><span>Files</span></a></li>
      <li>
        <div id="MSearchBox" class="MSearchBoxInactive">
        <span class="left">
          <img id="MSearchSelect" src="search/mag_sel.png"
               onmouseover="return searchBox.OnSearchSelectShow()"
               onmouseout="return searchBox.OnSearchSelectHide()"
               alt=""/>
          <input type="text" id="MSearchField" value="Search" accesskey="S"
               onfocus="searchBox.OnSearchFieldFocus(true)" 
               onblur="searchBox.OnSearchFieldFocus(false)" 
               onkeyup="searchBox.OnSearchFieldChange(event)"/>
          </span><span class="right">
            <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
          </span>
        </div>
      </li>
    </ul>
  </div>
  <div id="navrow2" class="tabs2">
    <ul class="tablist">
      <li><a href="annotated.html"><span>Class&#160;List</span></a></li>
      <li><a href="classes.html"><span>Class&#160;Index</span></a></li>
      <li><a href="hierarchy.html"><span>Class&#160;Hierarchy</span></a></li>
      <li><a href="functions.html"><span>Class&#160;Members</span></a></li>
    </ul>
  </div>
</div><!-- top -->
<div id="side-nav" class="ui-resizable side-nav-resizable">
  <div id="nav-tree">
    <div id="nav-tree-contents">
      <div id="nav-sync" class="sync"></div>
    </div>
  </div>
  <div id="splitbar" style="-moz-user-select:none;" 
       class="ui-resizable-handle">
  </div>
</div>
<script type="text/javascript">
$(document).ready(function(){initNavTree('class_system_sharp_1_1_assembler_1_1_flow_matrix.html','');});
</script>
<div id="doc-content">
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
     onmouseover="return searchBox.OnSearchSelectShow()"
     onmouseout="return searchBox.OnSearchSelectHide()"
     onkeydown="return searchBox.OnSearchSelectKey(event)">
<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Classes</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Namespaces</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark">&#160;</span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark">&#160;</span>Enumerator</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(9)"><span class="SelectionMark">&#160;</span>Properties</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(10)"><span class="SelectionMark">&#160;</span>Events</a></div>

<!-- iframe showing the search results (closed by default) -->
<div id="MSearchResultsWindow">
<iframe src="javascript:void(0)" frameborder="0" 
        name="MSearchResults" id="MSearchResults">
</iframe>
</div>

<div class="header">
  <div class="summary">
<a href="#nested-classes">Classes</a> &#124;
<a href="#pub-methods">Public Member Functions</a> &#124;
<a href="#pub-static-methods">Static Public Member Functions</a> &#124;
<a href="#properties">Properties</a> &#124;
<a href="class_system_sharp_1_1_assembler_1_1_flow_matrix-members.html">List of all members</a>  </div>
  <div class="headertitle">
<div class="title">SystemSharp.Assembler.FlowMatrix Class Reference</div>  </div>
</div><!--header-->
<div class="contents">

<p>A flow matrix models timed dataflows between data sources and sinks. It is the fundamental abstraction used for interconnect and control path construction.  
 <a href="class_system_sharp_1_1_assembler_1_1_flow_matrix.html#details">More...</a></p>
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-methods"></a>
Public Member Functions</h2></td></tr>
<tr class="memitem:a8ef62f11159d3f174907350dc654773f"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_system_sharp_1_1_assembler_1_1_flow_matrix.html#a8ef62f11159d3f174907350dc654773f">Add</a> (int cstep, <a class="el" href="class_system_sharp_1_1_components_1_1_transactions_1_1_flow.html">Flow</a> flow)</td></tr>
<tr class="memdesc:a8ef62f11159d3f174907350dc654773f"><td class="mdescLeft">&#160;</td><td class="mdescRight">Adds a dataflow to the flow matrix at specified c-step  <a href="#a8ef62f11159d3f174907350dc654773f">More...</a><br/></td></tr>
<tr class="separator:a8ef62f11159d3f174907350dc654773f"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a7c2870fa19b27d4044118c152a08ba56"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_system_sharp_1_1_assembler_1_1_flow_matrix.html#a7c2870fa19b27d4044118c152a08ba56">Add</a> (int cstep, <a class="el" href="class_system_sharp_1_1_components_1_1_transactions_1_1_par_flow.html">ParFlow</a> pflow)</td></tr>
<tr class="memdesc:a7c2870fa19b27d4044118c152a08ba56"><td class="mdescLeft">&#160;</td><td class="mdescRight">Adds an aggregate dataflow to the flow matrix at specified c-step  <a href="#a7c2870fa19b27d4044118c152a08ba56">More...</a><br/></td></tr>
<tr class="separator:a7c2870fa19b27d4044118c152a08ba56"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a6cd68bf5fb50342594b23aedc7824d57"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_system_sharp_1_1_assembler_1_1_flow_matrix.html#a6cd68bf5fb50342594b23aedc7824d57">Add</a> (int cstep, IEnumerable&lt; <a class="el" href="class_system_sharp_1_1_components_1_1_transactions_1_1_par_flow.html">ParFlow</a> &gt; seq)</td></tr>
<tr class="memdesc:a6cd68bf5fb50342594b23aedc7824d57"><td class="mdescLeft">&#160;</td><td class="mdescRight">Adds a sequence of aggregate dataflows to the flow matrix. Beginning from specified c-step, each following aggregate dataflow is scheduled one c-step later.  <a href="#a6cd68bf5fb50342594b23aedc7824d57">More...</a><br/></td></tr>
<tr class="separator:a6cd68bf5fb50342594b23aedc7824d57"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aa7b93df745d2a737614160d08d0773c4"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_system_sharp_1_1_assembler_1_1_flow_matrix.html#aa7b93df745d2a737614160d08d0773c4">Add</a> (int cstep, IEnumerable&lt; <a class="el" href="class_system_sharp_1_1_components_1_1_transactions_1_1_t_a_verb.html">TAVerb</a> &gt; taseq)</td></tr>
<tr class="memdesc:aa7b93df745d2a737614160d08d0773c4"><td class="mdescLeft">&#160;</td><td class="mdescRight">Adds a sequence of transaction verbs to the flow matrix. Beginning from specified c-step, each following transaction verb is scheduled one c-step later. The transaction verbs are converted to dataflows during this procedure.  <a href="#aa7b93df745d2a737614160d08d0773c4">More...</a><br/></td></tr>
<tr class="separator:aa7b93df745d2a737614160d08d0773c4"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a1d5f012a2ac424cd837f885edb3256a1"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_system_sharp_1_1_assembler_1_1_flow_matrix.html#a1d5f012a2ac424cd837f885edb3256a1">Remove</a> (int cstep, <a class="el" href="class_system_sharp_1_1_sys_d_o_m_1_1_signal_ref.html">SignalRef</a> target)</td></tr>
<tr class="memdesc:a1d5f012a2ac424cd837f885edb3256a1"><td class="mdescLeft">&#160;</td><td class="mdescRight">Removes the dataflow targeting specified signal at specified c-step  <a href="#a1d5f012a2ac424cd837f885edb3256a1">More...</a><br/></td></tr>
<tr class="separator:a1d5f012a2ac424cd837f885edb3256a1"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a5a906577c49b2bd9aebf086efd2ca35d"><td class="memItemLeft" align="right" valign="top"><a class="el" href="class_system_sharp_1_1_components_1_1_transactions_1_1_par_flow.html">ParFlow</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_system_sharp_1_1_assembler_1_1_flow_matrix.html#a5a906577c49b2bd9aebf086efd2ca35d">GetFlow</a> (int cstep)</td></tr>
<tr class="memdesc:a5a906577c49b2bd9aebf086efd2ca35d"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns all active flows for a given c-step.  <a href="#a5a906577c49b2bd9aebf086efd2ca35d">More...</a><br/></td></tr>
<tr class="separator:a5a906577c49b2bd9aebf086efd2ca35d"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a7dd734c55e57022320e7e79d5963a10c"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_system_sharp_1_1_assembler_1_1_flow_matrix.html#a7dd734c55e57022320e7e79d5963a10c">AddNeutral</a> (<a class="el" href="class_system_sharp_1_1_components_1_1_transactions_1_1_par_flow.html">ParFlow</a> pflow)</td></tr>
<tr class="memdesc:a7dd734c55e57022320e7e79d5963a10c"><td class="mdescLeft">&#160;</td><td class="mdescRight">Adds an aggregate dataflow describing the neutral (default) dataflow for all specified targets.  <a href="#a7dd734c55e57022320e7e79d5963a10c">More...</a><br/></td></tr>
<tr class="separator:a7dd734c55e57022320e7e79d5963a10c"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a5ef52c5b401bde6a232b77bbe2bb3cf7"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_system_sharp_1_1_assembler_1_1_flow_matrix.html#a5ef52c5b401bde6a232b77bbe2bb3cf7">AddNeutral</a> (<a class="el" href="class_system_sharp_1_1_components_1_1_transactions_1_1_flow.html">Flow</a> flow)</td></tr>
<tr class="memdesc:a5ef52c5b401bde6a232b77bbe2bb3cf7"><td class="mdescLeft">&#160;</td><td class="mdescRight">Adds a neutral (default) dataflow for a specific signal target.  <a href="#a5ef52c5b401bde6a232b77bbe2bb3cf7">More...</a><br/></td></tr>
<tr class="separator:a5ef52c5b401bde6a232b77bbe2bb3cf7"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a3e60eb473022c87b24c4600fa04f680a"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_system_sharp_1_1_assembler_1_1_flow_matrix.html#a3e60eb473022c87b24c4600fa04f680a">AddNeutral</a> (<a class="el" href="class_system_sharp_1_1_components_1_1_transactions_1_1_t_a_verb.html">TAVerb</a> verb)</td></tr>
<tr class="memdesc:a3e60eb473022c87b24c4600fa04f680a"><td class="mdescLeft">&#160;</td><td class="mdescRight">Adds a transaction verb to describe the neutral (default) dataflows for all specified signal targets.  <a href="#a3e60eb473022c87b24c4600fa04f680a">More...</a><br/></td></tr>
<tr class="separator:a3e60eb473022c87b24c4600fa04f680a"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a491c36d0bfec4f1b5a0223b1702b4ab5"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_system_sharp_1_1_assembler_1_1_flow_matrix.html#a491c36d0bfec4f1b5a0223b1702b4ab5">AddNeutral</a> (IEnumerable&lt; <a class="el" href="class_system_sharp_1_1_components_1_1_transactions_1_1_t_a_verb.html">TAVerb</a> &gt; taseq)</td></tr>
<tr class="memdesc:a491c36d0bfec4f1b5a0223b1702b4ab5"><td class="mdescLeft">&#160;</td><td class="mdescRight">Adds a neutral transaction to the flow matrix. The transaction is expected to contain exactly one element.  <a href="#a491c36d0bfec4f1b5a0223b1702b4ab5">More...</a><br/></td></tr>
<tr class="separator:a491c36d0bfec4f1b5a0223b1702b4ab5"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aade7b0a0c8cd631e000a56d2a9317bf3"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_system_sharp_1_1_assembler_1_1_flow_matrix.html#aade7b0a0c8cd631e000a56d2a9317bf3">AppendComment</a> (int cstep, string comment)</td></tr>
<tr class="memdesc:aade7b0a0c8cd631e000a56d2a9317bf3"><td class="mdescLeft">&#160;</td><td class="mdescRight">Appends a documentary comment to a certain c-step. This method may be called multiple times for the same c-step. All comments for the same c-step will be concatenated.  <a href="#aade7b0a0c8cd631e000a56d2a9317bf3">More...</a><br/></td></tr>
<tr class="separator:aade7b0a0c8cd631e000a56d2a9317bf3"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a55f3d0e4431c4e0e31b2277e4cce870c"><td class="memItemLeft" align="right" valign="top">string&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_system_sharp_1_1_assembler_1_1_flow_matrix.html#a55f3d0e4431c4e0e31b2277e4cce870c">GetComment</a> (int cstep)</td></tr>
<tr class="memdesc:a55f3d0e4431c4e0e31b2277e4cce870c"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns the concatenated comments for specified c-step.  <a href="#a55f3d0e4431c4e0e31b2277e4cce870c">More...</a><br/></td></tr>
<tr class="separator:a55f3d0e4431c4e0e31b2277e4cce870c"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ac3f3fb28becd0b6d3a1f348fe240d903"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_system_sharp_1_1_assembler_1_1_flow_matrix.html#ac3f3fb28becd0b6d3a1f348fe240d903">Transitize</a> ()</td></tr>
<tr class="memdesc:ac3f3fb28becd0b6d3a1f348fe240d903"><td class="mdescLeft">&#160;</td><td class="mdescRight">Eliminates all transitive dataflows inside the flow matrix. I.e. any two dataflows in the form (a -&gt; b), (b -&gt; c) will be replaced by a single dataflow (a -&gt; c). This transformation keeps the semantics of the flow matrix.  <a href="#ac3f3fb28becd0b6d3a1f348fe240d903">More...</a><br/></td></tr>
<tr class="separator:ac3f3fb28becd0b6d3a1f348fe240d903"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a1dddaf467ea1e3376a6d70c281f51ff0"><td class="memItemLeft" align="right" valign="top">IEnumerable&lt; <a class="el" href="class_system_sharp_1_1_components_1_1_transactions_1_1_flow.html">Flow</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_system_sharp_1_1_assembler_1_1_flow_matrix.html#a1dddaf467ea1e3376a6d70c281f51ff0">GetFlowsTo</a> (<a class="el" href="class_system_sharp_1_1_sys_d_o_m_1_1_signal_ref.html">SignalRef</a> target)</td></tr>
<tr class="memdesc:a1dddaf467ea1e3376a6d70c281f51ff0"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns all dataflows targeting specified signal, regardless of their activation times.  <a href="#a1dddaf467ea1e3376a6d70c281f51ff0">More...</a><br/></td></tr>
<tr class="separator:a1dddaf467ea1e3376a6d70c281f51ff0"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a72e1e02722d9226f8dd183dc4646cba8"><td class="memItemLeft" align="right" valign="top">IEnumerable&lt; <a class="el" href="interface_system_sharp_1_1_components_1_1_transactions_1_1_i_timed_flow.html">ITimedFlow</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_system_sharp_1_1_assembler_1_1_flow_matrix.html#a72e1e02722d9226f8dd183dc4646cba8">GetTimedFlows</a> ()</td></tr>
<tr class="memdesc:a72e1e02722d9226f8dd183dc4646cba8"><td class="mdescLeft">&#160;</td><td class="mdescRight">Converts the flow matrix to a sequence of timed dataflows  <a href="#a72e1e02722d9226f8dd183dc4646cba8">More...</a><br/></td></tr>
<tr class="separator:a72e1e02722d9226f8dd183dc4646cba8"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ac13d6693145979b64991054c956e57ac"><td class="memItemLeft" align="right" valign="top">string&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_system_sharp_1_1_assembler_1_1_flow_matrix.html#ac13d6693145979b64991054c956e57ac">GetMUXReport</a> ()</td></tr>
<tr class="memdesc:ac13d6693145979b64991054c956e57ac"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns a documentary report describing the quantities and sizes of multiplexers which are induced by this flow matrix.  <a href="#ac13d6693145979b64991054c956e57ac">More...</a><br/></td></tr>
<tr class="separator:ac13d6693145979b64991054c956e57ac"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a95837360f29163d590131e95f8bb5f46"><td class="memItemLeft" align="right" valign="top">string&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_system_sharp_1_1_assembler_1_1_flow_matrix.html#a95837360f29163d590131e95f8bb5f46">GetMUXHisto</a> ()</td></tr>
<tr class="memdesc:a95837360f29163d590131e95f8bb5f46"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns a documentary string describing a histogram of multiplexer sizes which are induced by this flow matrix.  <a href="#a95837360f29163d590131e95f8bb5f46">More...</a><br/></td></tr>
<tr class="separator:a95837360f29163d590131e95f8bb5f46"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a350ccd29b41c5c4d7dc3388691029410"><td class="memItemLeft" align="right" valign="top">string&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_system_sharp_1_1_assembler_1_1_flow_matrix.html#a350ccd29b41c5c4d7dc3388691029410">GetTimedFlowReport</a> ()</td></tr>
<tr class="memdesc:a350ccd29b41c5c4d7dc3388691029410"><td class="mdescLeft">&#160;</td><td class="mdescRight">Converts the timed dataflow representation of this flow matrix to a textual description.  <a href="#a350ccd29b41c5c4d7dc3388691029410">More...</a><br/></td></tr>
<tr class="separator:a350ccd29b41c5c4d7dc3388691029410"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a40517c71e2842d1932c7d77c6734e3e9"><td class="memItemLeft" align="right" valign="top">string&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_system_sharp_1_1_assembler_1_1_flow_matrix.html#a40517c71e2842d1932c7d77c6734e3e9">GetFlowReport</a> ()</td></tr>
<tr class="memdesc:a40517c71e2842d1932c7d77c6734e3e9"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns a textual description of this flow matrix.  <a href="#a40517c71e2842d1932c7d77c6734e3e9">More...</a><br/></td></tr>
<tr class="separator:a40517c71e2842d1932c7d77c6734e3e9"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a09ba9eb369b3eb04dc0074a2669f2478"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_system_sharp_1_1_assembler_1_1_flow_matrix.html#a09ba9eb369b3eb04dc0074a2669f2478">ReplaceDontCares</a> ()</td></tr>
<tr class="memdesc:a09ba9eb369b3eb04dc0074a2669f2478"><td class="mdescLeft">&#160;</td><td class="mdescRight">Replaces all value-flows transferring don't-care values by real values.  <a href="#a09ba9eb369b3eb04dc0074a2669f2478">More...</a><br/></td></tr>
<tr class="separator:a09ba9eb369b3eb04dc0074a2669f2478"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ae75d54aa6a4ae0fdf1e3349ccb08d8e0"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_system_sharp_1_1_assembler_1_1_flow_matrix.html#ae75d54aa6a4ae0fdf1e3349ccb08d8e0">ReplaceDontCaresByTriStates</a> ()</td></tr>
<tr class="memdesc:ae75d54aa6a4ae0fdf1e3349ccb08d8e0"><td class="mdescLeft">&#160;</td><td class="mdescRight">Replaces any don't-care symbol with the high-impedance symbol.  <a href="#ae75d54aa6a4ae0fdf1e3349ccb08d8e0">More...</a><br/></td></tr>
<tr class="separator:ae75d54aa6a4ae0fdf1e3349ccb08d8e0"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a5b7d7d2cf36bb892addab44586cb03f8"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_system_sharp_1_1_assembler_1_1_flow_matrix.html#a5b7d7d2cf36bb892addab44586cb03f8">RemoveDontCares</a> ()</td></tr>
<tr class="memdesc:a5b7d7d2cf36bb892addab44586cb03f8"><td class="mdescLeft">&#160;</td><td class="mdescRight">Removes all value-flows containing don't-care values from this matrix.  <a href="#a5b7d7d2cf36bb892addab44586cb03f8">More...</a><br/></td></tr>
<tr class="separator:a5b7d7d2cf36bb892addab44586cb03f8"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-static-methods"></a>
Static Public Member Functions</h2></td></tr>
<tr class="memitem:a0d37ef0a89e7bc2702cd97c412918fdc"><td class="memItemLeft" align="right" valign="top">static <a class="el" href="class_system_sharp_1_1_components_1_1_transactions_1_1_value_flow.html">ValueFlow</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_system_sharp_1_1_assembler_1_1_flow_matrix.html#a0d37ef0a89e7bc2702cd97c412918fdc">CreateDontCareFlow</a> (<a class="el" href="class_system_sharp_1_1_sys_d_o_m_1_1_signal_ref.html">SignalRef</a> target)</td></tr>
<tr class="memdesc:a0d37ef0a89e7bc2702cd97c412918fdc"><td class="mdescLeft">&#160;</td><td class="mdescRight">Creates a dataflow which transfers the "don't care" literal to a signal target of choice  <a href="#a0d37ef0a89e7bc2702cd97c412918fdc">More...</a><br/></td></tr>
<tr class="separator:a0d37ef0a89e7bc2702cd97c412918fdc"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a9daab55bd9f59f0d6c47edc0f7519e94"><td class="memItemLeft" align="right" valign="top">static bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_system_sharp_1_1_assembler_1_1_flow_matrix.html#a9daab55bd9f59f0d6c47edc0f7519e94">IsDontCareFlow</a> (<a class="el" href="class_system_sharp_1_1_components_1_1_transactions_1_1_flow.html">Flow</a> flow)</td></tr>
<tr class="memdesc:a9daab55bd9f59f0d6c47edc0f7519e94"><td class="mdescLeft">&#160;</td><td class="mdescRight">Checks whether a given dataflow transfers the don't care literal to its destination.  <a href="#a9daab55bd9f59f0d6c47edc0f7519e94">More...</a><br/></td></tr>
<tr class="separator:a9daab55bd9f59f0d6c47edc0f7519e94"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a45b3a35c05d48cd2eb061077c984c75b"><td class="memItemLeft" align="right" valign="top">static <a class="el" href="class_system_sharp_1_1_components_1_1_transactions_1_1_value_flow.html">ValueFlow</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_system_sharp_1_1_assembler_1_1_flow_matrix.html#a45b3a35c05d48cd2eb061077c984c75b">AsDontCareFlow</a> (<a class="el" href="class_system_sharp_1_1_components_1_1_transactions_1_1_value_flow.html">ValueFlow</a> vflow, <a class="el" href="struct_system_sharp_1_1_data_types_1_1_std_logic.html">StdLogic</a> symbol)</td></tr>
<tr class="memdesc:a45b3a35c05d48cd2eb061077c984c75b"><td class="mdescLeft">&#160;</td><td class="mdescRight">Replaces the data symbol of a value-flow with the specified symbol. If the old data symbol is a logic vector, the specified symbol is replicated to a vector.  <a href="#a45b3a35c05d48cd2eb061077c984c75b">More...</a><br/></td></tr>
<tr class="separator:a45b3a35c05d48cd2eb061077c984c75b"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a98d1d65d86db9767bf1ef8d46bdba417"><td class="memItemLeft" align="right" valign="top">static <a class="el" href="class_system_sharp_1_1_components_1_1_transactions_1_1_value_flow.html">ValueFlow</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_system_sharp_1_1_assembler_1_1_flow_matrix.html#a98d1d65d86db9767bf1ef8d46bdba417">AsDontCareFlow</a> (<a class="el" href="class_system_sharp_1_1_components_1_1_transactions_1_1_value_flow.html">ValueFlow</a> vflow)</td></tr>
<tr class="memdesc:a98d1d65d86db9767bf1ef8d46bdba417"><td class="mdescLeft">&#160;</td><td class="mdescRight">Replaces the data symbol of a value-flow with the don't care symbol  <a href="#a98d1d65d86db9767bf1ef8d46bdba417">More...</a><br/></td></tr>
<tr class="separator:a98d1d65d86db9767bf1ef8d46bdba417"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="properties"></a>
Properties</h2></td></tr>
<tr class="memitem:aa85d040d4d4237e25250a907329d81e6"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_system_sharp_1_1_assembler_1_1_flow_matrix.html#aa85d040d4d4237e25250a907329d81e6">NumCSteps</a><code> [get]</code></td></tr>
<tr class="memdesc:aa85d040d4d4237e25250a907329d81e6"><td class="mdescLeft">&#160;</td><td class="mdescRight">Number of c-steps described by flow matrix  <a href="#aa85d040d4d4237e25250a907329d81e6">More...</a><br/></td></tr>
<tr class="separator:aa85d040d4d4237e25250a907329d81e6"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a53f30294b1dc88e54948b89b5a547206"><td class="memItemLeft" align="right" valign="top"><a class="el" href="class_system_sharp_1_1_components_1_1_transactions_1_1_par_flow.html">ParFlow</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_system_sharp_1_1_assembler_1_1_flow_matrix.html#a53f30294b1dc88e54948b89b5a547206">NeutralFlow</a><code> [get]</code></td></tr>
<tr class="memdesc:a53f30294b1dc88e54948b89b5a547206"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns the neutral (default) dataflows to all known signal targets.  <a href="#a53f30294b1dc88e54948b89b5a547206">More...</a><br/></td></tr>
<tr class="separator:a53f30294b1dc88e54948b89b5a547206"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aeff5dcdc31bd234870466cfdaee6faa9"><td class="memItemLeft" align="right" valign="top">IEnumerable&lt; <a class="el" href="class_system_sharp_1_1_sys_d_o_m_1_1_signal_ref.html">SignalRef</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_system_sharp_1_1_assembler_1_1_flow_matrix.html#aeff5dcdc31bd234870466cfdaee6faa9">FlowTargets</a><code> [get]</code></td></tr>
<tr class="memdesc:aeff5dcdc31bd234870466cfdaee6faa9"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns all signals targeted by any dataflow inside the matrix  <a href="#aeff5dcdc31bd234870466cfdaee6faa9">More...</a><br/></td></tr>
<tr class="separator:aeff5dcdc31bd234870466cfdaee6faa9"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ac04a7fbba765deee03756f3b43ecc45b"><td class="memItemLeft" align="right" valign="top">IEnumerable&lt; <a class="el" href="class_system_sharp_1_1_sys_d_o_m_1_1_signal_ref.html">SignalRef</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_system_sharp_1_1_assembler_1_1_flow_matrix.html#ac04a7fbba765deee03756f3b43ecc45b">FlowSources</a><code> [get]</code></td></tr>
<tr class="memdesc:ac04a7fbba765deee03756f3b43ecc45b"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns all signals being the source of any dataflow inside the matrix  <a href="#ac04a7fbba765deee03756f3b43ecc45b">More...</a><br/></td></tr>
<tr class="separator:ac04a7fbba765deee03756f3b43ecc45b"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
<div class="textblock"><p>A flow matrix models timed dataflows between data sources and sinks. It is the fundamental abstraction used for interconnect and control path construction. </p>
<p>You can image a flow matrix as a cubic adjacency matrix, describing a data transfer between a source and a sink at a given time (although it is not implemented that way). Another way to look at the flow matrix is to understand it as a list of "transfer orders", each order describing a data source, a data sink and a time (i.e. c-step) when the transfer is active. Data sources and sinks may be concrete ports and signals, but they might also be virtual registers - meant to be replaced by concrete signals during interconnect construction. Moreover, the flow matrix introduces the concept of so-called neutral dataflows. These act as default dataflows, being active whenever there is no explicit dataflow specified at a given c-step.</p>
<p>As the flow matrix is used in many contexts, and as the needs of algorithms using it vary, the flow matrix provides a bunch of methods to query information and to manipulate it.</p>

<p>Definition at line <a class="el" href="_flow_matrix_8cs_source.html#l00050">50</a> of file <a class="el" href="_flow_matrix_8cs_source.html">FlowMatrix.cs</a>.</p>
</div><h2 class="groupheader">Member Function Documentation</h2>
<a class="anchor" id="a8ef62f11159d3f174907350dc654773f"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void SystemSharp.Assembler.FlowMatrix.Add </td>
          <td>(</td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>cstep</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="class_system_sharp_1_1_components_1_1_transactions_1_1_flow.html">Flow</a>&#160;</td>
          <td class="paramname"><em>flow</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Adds a dataflow to the flow matrix at specified c-step </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">cstep</td><td>c-step when the dataflow is active</td></tr>
    <tr><td class="paramname">flow</td><td>the dataflow to add</td></tr>
  </table>
  </dd>
</dl>

<p>Definition at line <a class="el" href="_flow_matrix_8cs_source.html#l00226">226</a> of file <a class="el" href="_flow_matrix_8cs_source.html">FlowMatrix.cs</a>.</p>

</div>
</div>
<a class="anchor" id="a7c2870fa19b27d4044118c152a08ba56"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void SystemSharp.Assembler.FlowMatrix.Add </td>
          <td>(</td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>cstep</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="class_system_sharp_1_1_components_1_1_transactions_1_1_par_flow.html">ParFlow</a>&#160;</td>
          <td class="paramname"><em>pflow</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Adds an aggregate dataflow to the flow matrix at specified c-step </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">cstep</td><td>c-step when the dataflow is active</td></tr>
    <tr><td class="paramname">pflow</td><td>the aggregate dataflow to add</td></tr>
  </table>
  </dd>
</dl>

<p>Definition at line <a class="el" href="_flow_matrix_8cs_source.html#l00246">246</a> of file <a class="el" href="_flow_matrix_8cs_source.html">FlowMatrix.cs</a>.</p>

</div>
</div>
<a class="anchor" id="a6cd68bf5fb50342594b23aedc7824d57"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void SystemSharp.Assembler.FlowMatrix.Add </td>
          <td>(</td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>cstep</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">IEnumerable&lt; <a class="el" href="class_system_sharp_1_1_components_1_1_transactions_1_1_par_flow.html">ParFlow</a> &gt;&#160;</td>
          <td class="paramname"><em>seq</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Adds a sequence of aggregate dataflows to the flow matrix. Beginning from specified c-step, each following aggregate dataflow is scheduled one c-step later. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">cstep</td><td>c-step when the first aggregate dataflow is active</td></tr>
    <tr><td class="paramname">seq</td><td>sequence of aggregate dataflows</td></tr>
  </table>
  </dd>
</dl>

<p>Definition at line <a class="el" href="_flow_matrix_8cs_source.html#l00258">258</a> of file <a class="el" href="_flow_matrix_8cs_source.html">FlowMatrix.cs</a>.</p>

</div>
</div>
<a class="anchor" id="aa7b93df745d2a737614160d08d0773c4"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void SystemSharp.Assembler.FlowMatrix.Add </td>
          <td>(</td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>cstep</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">IEnumerable&lt; <a class="el" href="class_system_sharp_1_1_components_1_1_transactions_1_1_t_a_verb.html">TAVerb</a> &gt;&#160;</td>
          <td class="paramname"><em>taseq</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Adds a sequence of transaction verbs to the flow matrix. Beginning from specified c-step, each following transaction verb is scheduled one c-step later. The transaction verbs are converted to dataflows during this procedure. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">cstep</td><td>c-step when the first transaction verb is active</td></tr>
    <tr><td class="paramname">taseq</td><td>sequence of transaction verbs</td></tr>
  </table>
  </dd>
</dl>

<p>Definition at line <a class="el" href="_flow_matrix_8cs_source.html#l00271">271</a> of file <a class="el" href="_flow_matrix_8cs_source.html">FlowMatrix.cs</a>.</p>

</div>
</div>
<a class="anchor" id="a7dd734c55e57022320e7e79d5963a10c"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void SystemSharp.Assembler.FlowMatrix.AddNeutral </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="class_system_sharp_1_1_components_1_1_transactions_1_1_par_flow.html">ParFlow</a>&#160;</td>
          <td class="paramname"><em>pflow</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Adds an aggregate dataflow describing the neutral (default) dataflow for all specified targets. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">pflow</td><td>the neutral dataflow as aggregate dataflow</td></tr>
  </table>
  </dd>
</dl>

<p>Definition at line <a class="el" href="_flow_matrix_8cs_source.html#l00300">300</a> of file <a class="el" href="_flow_matrix_8cs_source.html">FlowMatrix.cs</a>.</p>

</div>
</div>
<a class="anchor" id="a5ef52c5b401bde6a232b77bbe2bb3cf7"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void SystemSharp.Assembler.FlowMatrix.AddNeutral </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="class_system_sharp_1_1_components_1_1_transactions_1_1_flow.html">Flow</a>&#160;</td>
          <td class="paramname"><em>flow</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Adds a neutral (default) dataflow for a specific signal target. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">flow</td><td>the neutral dataflow</td></tr>
  </table>
  </dd>
</dl>

<p>Definition at line <a class="el" href="_flow_matrix_8cs_source.html#l00310">310</a> of file <a class="el" href="_flow_matrix_8cs_source.html">FlowMatrix.cs</a>.</p>

</div>
</div>
<a class="anchor" id="a3e60eb473022c87b24c4600fa04f680a"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void SystemSharp.Assembler.FlowMatrix.AddNeutral </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="class_system_sharp_1_1_components_1_1_transactions_1_1_t_a_verb.html">TAVerb</a>&#160;</td>
          <td class="paramname"><em>verb</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Adds a transaction verb to describe the neutral (default) dataflows for all specified signal targets. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">verb</td><td>a transaction verb intended as neutral flow</td></tr>
  </table>
  </dd>
</dl>

<p>Definition at line <a class="el" href="_flow_matrix_8cs_source.html#l00319">319</a> of file <a class="el" href="_flow_matrix_8cs_source.html">FlowMatrix.cs</a>.</p>

</div>
</div>
<a class="anchor" id="a491c36d0bfec4f1b5a0223b1702b4ab5"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void SystemSharp.Assembler.FlowMatrix.AddNeutral </td>
          <td>(</td>
          <td class="paramtype">IEnumerable&lt; <a class="el" href="class_system_sharp_1_1_components_1_1_transactions_1_1_t_a_verb.html">TAVerb</a> &gt;&#160;</td>
          <td class="paramname"><em>taseq</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Adds a neutral transaction to the flow matrix. The transaction is expected to contain exactly one element. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">taseq</td><td>neutral transaction</td></tr>
  </table>
  </dd>
</dl>

<p>Definition at line <a class="el" href="_flow_matrix_8cs_source.html#l00328">328</a> of file <a class="el" href="_flow_matrix_8cs_source.html">FlowMatrix.cs</a>.</p>

</div>
</div>
<a class="anchor" id="aade7b0a0c8cd631e000a56d2a9317bf3"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void SystemSharp.Assembler.FlowMatrix.AppendComment </td>
          <td>(</td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>cstep</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">string&#160;</td>
          <td class="paramname"><em>comment</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Appends a documentary comment to a certain c-step. This method may be called multiple times for the same c-step. All comments for the same c-step will be concatenated. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">cstep</td><td>c-step where comment should be attached</td></tr>
    <tr><td class="paramname">comment</td><td>the comment</td></tr>
  </table>
  </dd>
</dl>

<p>Definition at line <a class="el" href="_flow_matrix_8cs_source.html#l00350">350</a> of file <a class="el" href="_flow_matrix_8cs_source.html">FlowMatrix.cs</a>.</p>

</div>
</div>
<a class="anchor" id="a45b3a35c05d48cd2eb061077c984c75b"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">static <a class="el" href="class_system_sharp_1_1_components_1_1_transactions_1_1_value_flow.html">ValueFlow</a> SystemSharp.Assembler.FlowMatrix.AsDontCareFlow </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="class_system_sharp_1_1_components_1_1_transactions_1_1_value_flow.html">ValueFlow</a>&#160;</td>
          <td class="paramname"><em>vflow</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="struct_system_sharp_1_1_data_types_1_1_std_logic.html">StdLogic</a>&#160;</td>
          <td class="paramname"><em>symbol</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">static</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Replaces the data symbol of a value-flow with the specified symbol. If the old data symbol is a logic vector, the specified symbol is replicated to a vector. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">vflow</td><td>a value-flow</td></tr>
    <tr><td class="paramname">symbol</td><td>replacement symbol</td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>new value-flow - same target, but different data symbol</dd></dl>

<p>Definition at line <a class="el" href="_flow_matrix_8cs_source.html#l00182">182</a> of file <a class="el" href="_flow_matrix_8cs_source.html">FlowMatrix.cs</a>.</p>

</div>
</div>
<a class="anchor" id="a98d1d65d86db9767bf1ef8d46bdba417"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">static <a class="el" href="class_system_sharp_1_1_components_1_1_transactions_1_1_value_flow.html">ValueFlow</a> SystemSharp.Assembler.FlowMatrix.AsDontCareFlow </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="class_system_sharp_1_1_components_1_1_transactions_1_1_value_flow.html">ValueFlow</a>&#160;</td>
          <td class="paramname"><em>vflow</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">static</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Replaces the data symbol of a value-flow with the don't care symbol </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">vflow</td><td>a value-flow</td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>new value-flow - same target, but with don't care symbol</dd></dl>

<p>Definition at line <a class="el" href="_flow_matrix_8cs_source.html#l00199">199</a> of file <a class="el" href="_flow_matrix_8cs_source.html">FlowMatrix.cs</a>.</p>

</div>
</div>
<a class="anchor" id="a0d37ef0a89e7bc2702cd97c412918fdc"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">static <a class="el" href="class_system_sharp_1_1_components_1_1_transactions_1_1_value_flow.html">ValueFlow</a> SystemSharp.Assembler.FlowMatrix.CreateDontCareFlow </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="class_system_sharp_1_1_sys_d_o_m_1_1_signal_ref.html">SignalRef</a>&#160;</td>
          <td class="paramname"><em>target</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">static</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Creates a dataflow which transfers the "don't care" literal to a signal target of choice </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">target</td><td>signal target</td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>the resulting dataflow</dd></dl>

<p>Definition at line <a class="el" href="_flow_matrix_8cs_source.html#l00151">151</a> of file <a class="el" href="_flow_matrix_8cs_source.html">FlowMatrix.cs</a>.</p>

</div>
</div>
<a class="anchor" id="a55f3d0e4431c4e0e31b2277e4cce870c"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">string SystemSharp.Assembler.FlowMatrix.GetComment </td>
          <td>(</td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>cstep</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Returns the concatenated comments for specified c-step. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">cstep</td><td>c-step to query for</td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>concatenated comments</dd></dl>

<p>Definition at line <a class="el" href="_flow_matrix_8cs_source.html#l00361">361</a> of file <a class="el" href="_flow_matrix_8cs_source.html">FlowMatrix.cs</a>.</p>

</div>
</div>
<a class="anchor" id="a5a906577c49b2bd9aebf086efd2ca35d"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="class_system_sharp_1_1_components_1_1_transactions_1_1_par_flow.html">ParFlow</a> SystemSharp.Assembler.FlowMatrix.GetFlow </td>
          <td>(</td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>cstep</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Returns all active flows for a given c-step. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">cstep</td><td>c-step to query</td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>an aggregate dataflow covering all active dataflows</dd></dl>

<p>Definition at line <a class="el" href="_flow_matrix_8cs_source.html#l00291">291</a> of file <a class="el" href="_flow_matrix_8cs_source.html">FlowMatrix.cs</a>.</p>

</div>
</div>
<a class="anchor" id="a40517c71e2842d1932c7d77c6734e3e9"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">string SystemSharp.Assembler.FlowMatrix.GetFlowReport </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Returns a textual description of this flow matrix. </p>
<dl class="section return"><dt>Returns</dt><dd>textual description</dd></dl>

<p>Definition at line <a class="el" href="_flow_matrix_8cs_source.html#l00531">531</a> of file <a class="el" href="_flow_matrix_8cs_source.html">FlowMatrix.cs</a>.</p>

</div>
</div>
<a class="anchor" id="a1dddaf467ea1e3376a6d70c281f51ff0"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">IEnumerable&lt;<a class="el" href="class_system_sharp_1_1_components_1_1_transactions_1_1_flow.html">Flow</a>&gt; SystemSharp.Assembler.FlowMatrix.GetFlowsTo </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="class_system_sharp_1_1_sys_d_o_m_1_1_signal_ref.html">SignalRef</a>&#160;</td>
          <td class="paramname"><em>target</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Returns all dataflows targeting specified signal, regardless of their activation times. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">target</td><td>signal target to query for</td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>all dataflows targeting specified signal</dd></dl>

<p>Definition at line <a class="el" href="_flow_matrix_8cs_source.html#l00407">407</a> of file <a class="el" href="_flow_matrix_8cs_source.html">FlowMatrix.cs</a>.</p>

</div>
</div>
<a class="anchor" id="a95837360f29163d590131e95f8bb5f46"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">string SystemSharp.Assembler.FlowMatrix.GetMUXHisto </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Returns a documentary string describing a histogram of multiplexer sizes which are induced by this flow matrix. </p>
<dl class="section return"><dt>Returns</dt><dd>textual histogram</dd></dl>

<p>Definition at line <a class="el" href="_flow_matrix_8cs_source.html#l00507">507</a> of file <a class="el" href="_flow_matrix_8cs_source.html">FlowMatrix.cs</a>.</p>

</div>
</div>
<a class="anchor" id="ac13d6693145979b64991054c956e57ac"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">string SystemSharp.Assembler.FlowMatrix.GetMUXReport </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Returns a documentary report describing the quantities and sizes of multiplexers which are induced by this flow matrix. </p>
<dl class="section return"><dt>Returns</dt><dd>textual report</dd></dl>

<p>Definition at line <a class="el" href="_flow_matrix_8cs_source.html#l00484">484</a> of file <a class="el" href="_flow_matrix_8cs_source.html">FlowMatrix.cs</a>.</p>

</div>
</div>
<a class="anchor" id="a350ccd29b41c5c4d7dc3388691029410"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">string SystemSharp.Assembler.FlowMatrix.GetTimedFlowReport </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Converts the timed dataflow representation of this flow matrix to a textual description. </p>
<dl class="section return"><dt>Returns</dt><dd>textual description of timed dataflows</dd></dl>

<p>Definition at line <a class="el" href="_flow_matrix_8cs_source.html#l00522">522</a> of file <a class="el" href="_flow_matrix_8cs_source.html">FlowMatrix.cs</a>.</p>

</div>
</div>
<a class="anchor" id="a72e1e02722d9226f8dd183dc4646cba8"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">IEnumerable&lt;<a class="el" href="interface_system_sharp_1_1_components_1_1_transactions_1_1_i_timed_flow.html">ITimedFlow</a>&gt; SystemSharp.Assembler.FlowMatrix.GetTimedFlows </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Converts the flow matrix to a sequence of timed dataflows </p>
<dl class="section return"><dt>Returns</dt><dd>sequence of timed dataflows</dd></dl>

<p>Definition at line <a class="el" href="_flow_matrix_8cs_source.html#l00418">418</a> of file <a class="el" href="_flow_matrix_8cs_source.html">FlowMatrix.cs</a>.</p>

</div>
</div>
<a class="anchor" id="a9daab55bd9f59f0d6c47edc0f7519e94"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">static bool SystemSharp.Assembler.FlowMatrix.IsDontCareFlow </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="class_system_sharp_1_1_components_1_1_transactions_1_1_flow.html">Flow</a>&#160;</td>
          <td class="paramname"><em>flow</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">static</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Checks whether a given dataflow transfers the don't care literal to its destination. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">flow</td><td>a dataflow</td></tr>
  </table>
  </dd>
</dl>

<p>Definition at line <a class="el" href="_flow_matrix_8cs_source.html#l00161">161</a> of file <a class="el" href="_flow_matrix_8cs_source.html">FlowMatrix.cs</a>.</p>

</div>
</div>
<a class="anchor" id="a1d5f012a2ac424cd837f885edb3256a1"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void SystemSharp.Assembler.FlowMatrix.Remove </td>
          <td>(</td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>cstep</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="class_system_sharp_1_1_sys_d_o_m_1_1_signal_ref.html">SignalRef</a>&#160;</td>
          <td class="paramname"><em>target</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Removes the dataflow targeting specified signal at specified c-step </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">cstep</td><td>the c-step</td></tr>
    <tr><td class="paramname">target</td><td>target to which dataflow is to be removed</td></tr>
  </table>
  </dd>
</dl>

<p>Definition at line <a class="el" href="_flow_matrix_8cs_source.html#l00281">281</a> of file <a class="el" href="_flow_matrix_8cs_source.html">FlowMatrix.cs</a>.</p>

</div>
</div>
<a class="anchor" id="a5b7d7d2cf36bb892addab44586cb03f8"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void SystemSharp.Assembler.FlowMatrix.RemoveDontCares </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Removes all value-flows containing don't-care values from this matrix. </p>

<p>Definition at line <a class="el" href="_flow_matrix_8cs_source.html#l00613">613</a> of file <a class="el" href="_flow_matrix_8cs_source.html">FlowMatrix.cs</a>.</p>

</div>
</div>
<a class="anchor" id="a09ba9eb369b3eb04dc0074a2669f2478"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void SystemSharp.Assembler.FlowMatrix.ReplaceDontCares </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Replaces all value-flows transferring don't-care values by real values. </p>
<p>The semantics of the don't-care symbol admit any such symbol to be replaced with any other symbol, e.g. '0' or '1' without changing the behavior. However, if we blindly replace any don't care symbol with - let's say - logical zeroes, we won't perform optimally, since we might introduce unnecessary multiplexers. Therefore, the method first tries to find existing non-don't-care value-flows as suitable replacement candidates. Only if no such is found, it arbitrarily chooses to replace don't-cares with logical zeroes. </p>

<p>Definition at line <a class="el" href="_flow_matrix_8cs_source.html#l00556">556</a> of file <a class="el" href="_flow_matrix_8cs_source.html">FlowMatrix.cs</a>.</p>

</div>
</div>
<a class="anchor" id="ae75d54aa6a4ae0fdf1e3349ccb08d8e0"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void SystemSharp.Assembler.FlowMatrix.ReplaceDontCaresByTriStates </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Replaces any don't-care symbol with the high-impedance symbol. </p>

<p>Definition at line <a class="el" href="_flow_matrix_8cs_source.html#l00590">590</a> of file <a class="el" href="_flow_matrix_8cs_source.html">FlowMatrix.cs</a>.</p>

</div>
</div>
<a class="anchor" id="ac3f3fb28becd0b6d3a1f348fe240d903"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void SystemSharp.Assembler.FlowMatrix.Transitize </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Eliminates all transitive dataflows inside the flow matrix. I.e. any two dataflows in the form (a -&gt; b), (b -&gt; c) will be replaced by a single dataflow (a -&gt; c). This transformation keeps the semantics of the flow matrix. </p>

<p>Definition at line <a class="el" href="_flow_matrix_8cs_source.html#l00370">370</a> of file <a class="el" href="_flow_matrix_8cs_source.html">FlowMatrix.cs</a>.</p>

</div>
</div>
<h2 class="groupheader">Property Documentation</h2>
<a class="anchor" id="ac04a7fbba765deee03756f3b43ecc45b"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">IEnumerable&lt;<a class="el" href="class_system_sharp_1_1_sys_d_o_m_1_1_signal_ref.html">SignalRef</a>&gt; SystemSharp.Assembler.FlowMatrix.FlowSources</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">get</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Returns all signals being the source of any dataflow inside the matrix </p>

<p>Definition at line <a class="el" href="_flow_matrix_8cs_source.html#l00393">393</a> of file <a class="el" href="_flow_matrix_8cs_source.html">FlowMatrix.cs</a>.</p>

</div>
</div>
<a class="anchor" id="aeff5dcdc31bd234870466cfdaee6faa9"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">IEnumerable&lt;<a class="el" href="class_system_sharp_1_1_sys_d_o_m_1_1_signal_ref.html">SignalRef</a>&gt; SystemSharp.Assembler.FlowMatrix.FlowTargets</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">get</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Returns all signals targeted by any dataflow inside the matrix </p>

<p>Definition at line <a class="el" href="_flow_matrix_8cs_source.html#l00380">380</a> of file <a class="el" href="_flow_matrix_8cs_source.html">FlowMatrix.cs</a>.</p>

</div>
</div>
<a class="anchor" id="a53f30294b1dc88e54948b89b5a547206"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="class_system_sharp_1_1_components_1_1_transactions_1_1_par_flow.html">ParFlow</a> SystemSharp.Assembler.FlowMatrix.NeutralFlow</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">get</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Returns the neutral (default) dataflows to all known signal targets. </p>

<p>Definition at line <a class="el" href="_flow_matrix_8cs_source.html#l00340">340</a> of file <a class="el" href="_flow_matrix_8cs_source.html">FlowMatrix.cs</a>.</p>

</div>
</div>
<a class="anchor" id="aa85d040d4d4237e25250a907329d81e6"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">int SystemSharp.Assembler.FlowMatrix.NumCSteps</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">get</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Number of c-steps described by flow matrix </p>

<p>Definition at line <a class="el" href="_flow_matrix_8cs_source.html#l00211">211</a> of file <a class="el" href="_flow_matrix_8cs_source.html">FlowMatrix.cs</a>.</p>

</div>
</div>
<hr/>The documentation for this class was generated from the following file:<ul>
<li><a class="el" href="_flow_matrix_8cs_source.html">FlowMatrix.cs</a></li>
</ul>
</div><!-- contents -->
</div><!-- doc-content -->
<!-- start footer part -->
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
  <ul>
    <li class="navelem"><a class="el" href="namespace_system_sharp.html">SystemSharp</a></li><li class="navelem"><a class="el" href="namespace_system_sharp_1_1_assembler.html">Assembler</a></li><li class="navelem"><a class="el" href="class_system_sharp_1_1_assembler_1_1_flow_matrix.html">FlowMatrix</a></li>
    <li class="footer">Generated on Thu Dec 26 2013 14:21:55 for SystemSharp by
    <a href="http://www.doxygen.org/index.html">
    <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.6 </li>
  </ul>
</div>
</body>
</html>
